package com.huilian.cloud.module.system.dal.dataobject.permission;

import com.huilian.cloud.framework.common.enums.CommonStatusEnum;
import com.huilian.cloud.framework.mybatis.core.dataobject.BaseDO;
import com.huilian.cloud.module.system.enums.permission.MenuTypeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 菜单 DO
 *
 * @author ruoyi
 */
@TableName("sys_menu")
@KeySequence("sys_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
public class MenuDO extends BaseDO {
    /**
     * 菜单编号 - 根节点
     */
    public static final Long ID_ROOT = 0L;
    /**
     * 菜单ID
     */
    @TableId
    private Integer menuId;
    /**
     * 菜单名称
     */
    private String menuName;

    /**
     * 父菜单ID
     */
    private Long parentId;
    /**
     * 路由地址
     *
     * 如果 path 为 http(s) 时，则它是外链
     */
    private String path;
    /**
     * 菜单图标
     */
    private String icon;
    /**
     * 组件路径
     */
    private String component;

    /**
     * 状态
     *
     * 枚举 {@link CommonStatusEnum}
     */
    private Integer status;


    /**
     * 显示顺序
     */
    private Integer orderNum;


    /**
     * 是否为外链（0是 1否）
     */
    private Integer isFrame;
    /**
     * 菜单类型（M目录 C菜单 F按钮）
     */
    private String menuType;


    /**
     * 权限标识
     */
    private String perms;

    /**
     * 创建者
     */
    private String createBy;
    /**
     * 更新者
     */
    private String updateBy;
    /**
     * 备注
     */
    private String remark;
    /**
     * 权限编号
     */
    private String powerId;
    /**
     * 创建人id
     */
    private Integer createUserId;
    /**
     * 更新人id
     */
    private Integer updateUserId;
    /**
     * 默认展开
     */
    private Integer defaultOpen;
    /**
     * 公司类型 0通用 1民用 2工业 3超级管理 4开发人员
     */
    private String projectType;
    /**
     * 是否独立收费
     */
    private Boolean isCharge;
    /**
     * 项目id
     */
    private Integer projectId;
    /**
     * 是否首页 1是 0否
     */
    private Integer firstPage;
    /**
     * 三方id
     */
    private Integer tripartiteId;
    /**
     * 系统类型
     */
    private Integer systemType;
    /**
     * 是否工业民用通用菜单 1是 0否
     */
    private Integer commonFlag;
    /**
     * 自动管理
     */
    private Boolean autoManaged;
    /**
     * 模型类型
     */
    private Integer modelType;

}
